package com.blog4j.server.modules.email.service;

import com.blog4j.api.vo.NoticeEmailVo;

/**
 * @author 98k灬
 * @version v1.0.0
 * @Description : 功能描述
 * @Create on : 2024/8/14 12:37
 **/
public interface EmailService {
    /**
     * 发送系统邮件(验证码)
     *
     * @param toEmail 接收方邮件地址
     */
    void sendSystemEmail(String toEmail);

    /**
     * 发送通知邮件给文章审批人
     *
     * @param emailVo 邮件信息
     */
    void sendSystemEmailToArticleApproveUser(NoticeEmailVo emailVo);

    /**
     * 发送邮件给文章创建者
     *
     * @param toEmail 接收方邮箱地址
     * @param articleTitle 文章标题
     */
    void sendSystemEmailToArticleCreater(String toEmail, String articleTitle);

    /**
     * 给组织管理员发送邮件
     *
     * @param emailVo 邮件信息
     */
    void sendSystemEmailToOrganizationAdmin(NoticeEmailVo emailVo);

    /**
     * 用户申请加入组织，审批后，给用户发送邮件通知
     *
     * @param toEmail          用户邮箱地址
     * @param organizationName 组织名称
     */
    void sendEmailToUser(String toEmail, String organizationName);

    /**
     * 给超级管理员发送审批组织的邮件
     *
     * @param emailVo 邮件信息
     */
    void sendSystemEmailToSuperAdmin(NoticeEmailVo emailVo);

    /**
     * 用户申请创建组织 审批后 给用户发送邮件
     *
     * @param toEmail          用户邮箱地址
     * @param organizationName 组织名称
     */
    void sendEmailToUserForApproveOrganization(String toEmail, String organizationName);
}
